$_SERVER
$HTTP_SERVER_VARS [obsoleta]
$_SERVER -- $HTTP_SERVER_VARS [obsoleta] — Información del servidor y el entorno de ejecución
Descripción
$_SERVER es una matriz que contiene información tal
como cabeceras, rutas y ubicaciones de scripts. Las entradas de esta
matriz son creadas por el servidor web. No existen garantías de que todo
servidor vaya a proveer alguno de estos valores; puede que los servidores
omitan algunos, o provean otros que no se listan aquí. Hecha esta
aclaración, un gran número de estas variables hacen parte de la » especificación CGI 1.1, así que puede
esperar que sean definidas por el servidor.
$HTTP_SERVER_VARS contiene la misma información
inicial, pero no es una superglobal. (Note que
$HTTP_SERVER_VARS y $_SERVER son
variables diferentes y que PHP las trata como tal)
Pueden encontrarse o no cualquiera de los siguientes elementos en
$_SERVER. Note que algunos pocos de éstos, si es que
al menos uno de ellos, estarán disponibles (o tendrán algún significado
real) si se ejecuta PHP en la línea
de comandos.
-
'PHP_SELF'
-
El nombre de archivo del script ejecutándose actualmente, relativo a
la raíz de documentos. Por ejemplo,
$_SERVER['PHP_SELF'] en un script en la dirección
http://example.com/test.php/foo.bar sería
/test.php/foo.bar. La constante __FILE__ contiene la
ruta completa y nombre del archivo actual (o en otras palabras,
incluído).
Si PHP está siendo ejecutado como un procesador de línea de comandos,
esta variable contiene el nombre del script a partir de PHP 4.3.0.
Anteriormente no estaba disponible.
-
'$argv'
-
Matriz de argumentos pasados al script. Cuando el script es ejecutado
en la línea de comandos, ésta entrega acesso al estilo C a los
parámetros de la línea de comandos. Cuando es llamado mediante el
método GET, ésta contendrá la cadena de consulta (query).
-
'$argc'
-
Contiene el número de parámetros de línea de comandos pasados al
script (si se ejecuta en la línea de comandos).
-
'GATEWAY_INTERFACE'
-
Qué revisión de la especificación CGI está usando el servidor; es
decir 'CGI/1.1'.
-
'SERVER_ADDR'
-
La dirección IP del servidor bajo la cual está siendo ejecutado el
script actual.
-
'SERVER_NAME'
-
El nombre del servidor anfitrión bajo el que está siendo ejecutado el
script actual. Si el script está corriendo en un host virtual, éste
será el valor definido para ese host virtual.
-
'SERVER_SOFTWARE'
-
Cadena de identificación del servidor, dada en las cabeceras cuando
se responde a peticiones.
-
'SERVER_PROTOCOL'
-
Nombre y revisión del protocolo de información mediante el cual fue
solicitada la página; es decir, 'HTTP/1.0';
-
'REQUEST_METHOD'
-
Cuál método de petición fue usado para acceder a la página; es decir,
'GET', 'HEAD',
'POST', 'PUT'.
Note:
El script PHP es finalizado luego de enviar las cabeceras (es decir,
después de producir cualquier salida sin uso de búferes de salida)
si el método de petición fue HEAD.
-
'REQUEST_TIME'
-
La marca de tiempo del inicio de la petición. Disponible desde PHP
5.1.0.
-
'QUERY_STRING'
-
La cadena de consulta, si existe, mediante la cual se accedió a la
página.
-
'DOCUMENT_ROOT'
-
El directorio raíz de documentos bajo el que está siendo ejecutado el
script actual, tal y como se define en el archivo de configuración
del servidor.
-
'HTTP_ACCEPT'
-
Contenidos de la cabecera Accept: de la petición
actual, si existe.
-
'HTTP_ACCEPT_CHARSET'
-
Contenidos de la cabecera Accept-Charset: de la
petición actual, si existe. Ejemplo:
'iso-8859-1,*,utf-8'.
-
'HTTP_ACCEPT_ENCODING'
-
Contenidos de la cabecera Accept-Encoding: de la
petición actual, si existe. Ejemplo: 'gzip'.
-
'HTTP_ACCEPT_LANGUAGE'
-
Contenidos de la cabecera Accept-Language: de la
petición actual, si existe. Ejemplo: 'en'.
-
'HTTP_CONNECTION'
-
Contenidos de la cabecera Connection: de la
petición actual, si existe. Ejemplo: 'Keep-Alive'.
-
'HTTP_HOST'
-
Contenidos de la cabecera Host: de la petición
actual, si existe.
-
'HTTP_REFERER'
-
La dirección de la página (si la hay) la cual refirió al agente de
usuario a la página actual. Este valor es definido por el agente de
usuario. No todos los agentes de usuario lo definen, y algunos
proveen la capacidad de modificar HTTP_REFERER
como una característica del software. En resumen, no se puede confiar
realmente en este valor.
-
'HTTP_USER_AGENT'
-
Contenidos de la cabecera User-Agent: de la
petición actual, si existe. Esta es una cadena que denota el agente
de usuario que está accediendo a la página. Un ejemplo típico es:
Mozilla/4.5 [en] (X11; U; Linux 2.2.9
i586). Entre otras cosas, puede usar este valor con
get_browser() para personalizar la salida de su
página a las capacidades del agente de usuario.
-
'HTTPS'
-
Definido con un valor no-vacío si el script fue solicitado a través
del protocolo HTTPS.
Note que cuando se usa ISAPI con IIS, el valor será
off si la petición no fue hecha a través del
protocolo HTTPS.
-
'REMOTE_ADDR'
-
La dirección IP desde donde el usuario está observado la página
actual.
-
'REMOTE_HOST'
-
El nombre Host desde donde el usuario está viendo la página actual.
La consulta dns de vuelta está basada en el valor
REMOTE_ADDR del usuario.
Note:
Su servidor web debe estar configurado para crear esta variable.
Por ejemplo, en Apache necesitará HostnameLookups
On dentro de httpd.conf para que exista. Vea también
gethostbyaddr().
-
'REMOTE_PORT'
-
El puerto que está siendo usado en la máquina del usuario para
comunicarse con el servidor web.
-
'SCRIPT_FILENAME'
-
La ruta absoluta del nombre del script siendo ejecutado actualmente.
Note:
Si un script es ejecutado en el entorno CLI usando una ruta
relativa, tal como archivo.php o
../archivo.php,
$_SERVER['SCRIPT_FILENAME'] contendrá la ruta
relativa especificada por el usuario.
-
'SERVER_ADMIN'
-
El valor dado a la directiva SERVER_ADMIN (para Apache) en el archivo
de configuración del servidor web. Si el script está siendo ejecutado
en un host virtual, éste será el valor definido para ese host
virtual.
-
'SERVER_PORT'
-
El puerto en el equipo servidor que está siendo usado por el servidor
web para comunicación. En configuraciones predeterminadas, ese valor
será '80'; usando SSL, por ejemplo, este valor
cambiará a cualquiera que sea el puerto que esté definido para HTTP
seguro.
-
'SERVER_SIGNATURE'
-
Cadena que contiene la versión del servidor y el nombre de host
virtual que es agregado a las páginas generadas por el servidor, si
está habilitada esta funcionalidad.
-
'PATH_TRANSLATED'
-
Ruta sobre el sistema de archivos (no la raíz de documentos) al
script actual, luego de que el servidor haya realizado cualquier
asignación al vuelo virtual-a-real.
Note:
A partir de PHP 4.3.2, PATH_TRANSLATED ya no se
define implícitamente bajo la SAPI de Apache 2, a
diferencia de lo que ocurre en Apache 1, en donde se define con el
mismo valor de la variable de servidor
SCRIPT_FILENAME cuando Apache no se encarga de
definirlo. Este cambio fue realizado para cumplir con la
especificación CGI de que
PATH_TRANSLATED debe existir únicamente si
PATH_INFO se define.
Los usuarios de Apache 2 pueden usar AcceptPathInfo =
On al interior de httpd.conf para
definir PATH_INFO.
-
'SCRIPT_NAME'
-
Contiene la ruta del script actual. Ésta es útil para páginas que
necesitan apuntar a ellas mismas. La constante __FILE__ contiene la
ruta completa y nombre del archivo actual (es decir, incluido).
-
'REQUEST_URI'
-
El URI que fue dado para acceder a esta página; por ejemplo,
'/index.html'.
-
'PHP_AUTH_DIGEST'
-
Cuando se está corriendo bajo Apache como módulo, realizando
autenticación HTTP Digest, esta variable recibe el valor de la
cabecera 'Authorization' enviada por el cliente (la cual debería ser
usada para efectuar la validación apropiada).
-
'PHP_AUTH_USER'
-
Cuando se corre sobre Apache o IIS (ISAPI en PHP 5) como módulo
realizando autenticación HTTP, esta variable es definida con el
nombre de usuario definido por el cliente.
-
'PHP_AUTH_PW'
-
Cuando se corre sobre Apache o IIS (ISAPI en PHP 5) como módulo
realizando autenticación HTTP, esta variable es definida con la
contraseña entregada por el usuario.
-
'AUTH_TYPE'
-
Cuando se corre sobre Apache como módulo realizando autenticación
HTTP, esta variable es definida con el tipo de autenticación.
Ejemplos
Example #1 Ejemplo de $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
El resultado del ejemplo seria algo
similar a:
Notes
Note: This is a 'superglobal', or
automatic global, variable. This simply means that it is available in
all scopes throughout a script. There is no need to do
global $variable; to access it within functions or methods.